import {defineStore} from "pinia";
import {paramsType} from "../../api/user/model";
import {removeToken} from "../../utils/auth";
import {router} from "../../router";
import {store} from "../index";

interface userState {
    token:string;
}

const userStore = defineStore({
    id:'app-user',
    state:():userState =>({
        token:''
    }),
    getters:{
        getToken():string{
            return this.token;
        }
    },
    actions:{
        setToken(token:string):void{
            this.token = token
        },
        resetState():void{
            this.token = ''
        },
        // 登录请求接口 登录成功后重定向到 / 路由 由permission 请求权限 拿到用户角色权限及权限列表后登录页面
        async login(params:paramsType){

            // 此处写请求接口
            // return
        },
        // 退出登录并移除缓存信息 跳回登录页面 重置路由表
        async loginOut(){
            this.resetState();
            removeToken();
            await router.replace('/login');
            location.reload();
        }
    }
})

export function useUserStore(){
    return userStore(store);
}
